function [Y, X, Z] = detect_beads_LF_3(LF)

image_stack=double(LF);

% === 1. 预处理 & 去噪 ===
image_stack = imgaussfilt3(image_stack, 2); % 3D 高斯滤波（去除高频噪声）

% === 2. LoG 滤波增强球体 ===
h = fspecial3('log', [15, 15, 15], 5); % LoG 滤波器
filtered_img = imfilter(image_stack, h, 'symmetric');

% === 3. 自适应二值化 ===
threshold = mean(filtered_img(:)) - 3 * std(filtered_img(:)); 
binary_img = filtered_img < threshold; % 反转LoG响应并二值化

% 去除小区域噪声
min_size = 2000; % 设定球体的最小像素数量（可调整）
binary_img = bwareaopen(binary_img, min_size);

% 形态学处理
se = strel('sphere', 3);
binary_img = imopen(binary_img, se); % 去除噪声
binary_img = imclose(binary_img, se); % 连接断开的球体

% === 4. 计算球体质心 ===
cc = bwconncomp(binary_img, 26); % 26邻域连通域分析
stats = regionprops3(cc, 'Centroid', 'EquivDiameter'); % 计算球心和直径


% 输出球心坐标
%disp('检测到的球心坐标 (像素单位)：');
%disp(stats.Centroid);
centers = stats.Centroid;

X = centers(:,1);
Y = centers(:,2);
Z = centers(:,3);

end
